// contatti2.cpp : Defines the entry point for the console application.
//
/*
scrivere un programma che usando le funzioni che restituiscono un puntatore allochi un array di contati di cui numeri di elemnti è chiesto in inputi dall'
utente il programma deve permettere le seguenti voci di menù:
inserise nuovo contatto
stampa tutti i contatti
ricerca un contatto per cognome
contatto congome,nome, telefono,città.
*/


#include "stdafx.h"
#include <iostream>
#include <string.h>
#define NC 20+1
using namespace std;
typedef struct {
	char nome[NC];
	char cognome[NC];
	int telefono;
	char citta[NC];
}CONTATTI;

CONTATTI*carica(int n);//prototipo
void ricerca(int n, CONTATTI a[] );
void stampa(int n, CONTATTI a[]);
void menù();
int main()
{
	menù();
    return 0;
}
void menù() {

	int numero_contati;
	int scelta = 0;
	CONTATTI*u=0;
	do {
		system("cls");
		printf(" **menu**\n");
		printf("0.esci\n");
		printf("1.carica\n");
		printf("2.ricerca\n");
		printf("3.visualizza\n");
		scanf_s("%d", &scelta, sizeof(int));
		switch (scelta) {
		case 0:
			printf("arrivederci e lasciate la mancia\n");
			system("pause");
			break;
		case 1:
			printf("inserire il numero dei contatti\n");
			scanf_s("%d", &numero_contati, sizeof(int));
			u = carica(numero_contati);
			break;
		case 2:
			ricerca(numero_contati, u);
			system("pause");
			break;
		case 3:
			stampa(numero_contati, u);
			system("pause");
			break;
		default:
			printf("valore non valido\n");
			break;
		}
	} while (scelta != 0);

	free(u);



}
void stampa(int n, CONTATTI a[]) {
	for (int i = 0; i < n; i++) {
		printf(" nome :%s \n", a[i].nome);
		printf(" cognome :%s \n", a[i].cognome);
		printf("città: %s \n", a[i].citta);
		//printf(" telefono  :%d \n", a[i].telefono);

	}
}

void ricerca(int n,CONTATTI a[]) {
	char str[NC];
	int g = 0;
	printf("inserire il congome da ricercare\n");
	scanf_s("%s", str, NC);
	for (int i = 0; i < n; i++) {
		if (strcmp(str, a[i].cognome) == 0) {
			g = i;
			break;
		}
	}
	printf(" nome %s \n", a[g].nome);
	printf(" città %s \n", a[g].citta);
	//printf(" telefono %d \n,a[g].telefono);
}
CONTATTI*carica(int n) {
	//int numero_contati;
	CONTATTI*o;
	//printf("inserire il numero dei contatti\n");
	//scanf_s("%d", &numero_contati, sizeof(int));
	o = (CONTATTI*)malloc(n* sizeof(CONTATTI));
	for (int i = 0; i < n ; i++) {
		system("cls");
		printf("inserire il cognome\n");
		scanf_s("%s", o[i].cognome, NC);
		printf("inserire nome\n");
		scanf_s("%s", o[i].nome, NC);
		printf("inserire città\n");
		scanf_s("%s", o[i].citta, NC);
		/*
		printf("inserire numero di telefono\n"); chiedere al prof
		scanf_s("%d", o[i].telefono, sizeof(int));
		*/
	}
	return o;
}
